﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EGuayas.Web.Resources;
using EntGuayasSLA.BL.Listas;
using Ext.Net;
using EntGuayasSLA.BL;
using System.IO;
using System.Text;
using EntGuayasSLA.BL.Licenciamiento;


namespace EGuayas.Web.Auditoria.admin.Global
{
    public partial class pgAudPma : pgBase
    {
        
       
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
            if (!X.IsAjaxRequest)
            {
                Obligaciones objObligacion = wucPeriodicidad.BeginWuc(Request["idOli"], Valores.Codigo_TipoObligacion_Pma, Request["evt"]);
                if (Request["evt"] == Valores.PageEvento_Modificar)
                {
                    AuditoriaPMA audPma = AuditoriaPMA.GetEditableRoot(Guid.Parse(objObligacion.AuditoriaId));
                    frmAuditoria.SetValues(new
                    {
                        Periodo = audPma.Periodo,
                        FechaInicio = audPma.FechaInicio.ToShortDateString(),
                        FechaFin = audPma.FechaFin.ToShortDateString()
                    });
                    btnSave.Hide();
                    X.Js.Call("pgFn.setReadOnly");
                }
            }
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }
        /// <summary>
        /// Grabar información de expediente
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnSave_Click(object sender, DirectEventArgs e)
        {
            try
            { 
                if (!this.wucPeriodicidad.GetIfUpadate())
                {
                        X.Msg.Show(new MessageBoxConfig
                        {
                            Buttons = MessageBox.Button.OK,
                            Icon = MessageBox.Icon.INFO,
                            Title = Titulos.TituloAviso,
                            Message = string.Format("{0} <b>{1}</b>", "Ingrese datos de ", "configuaciones generales")

                        });
                }
                else
                {
             
                string stringMsg = "";
                string gridJson  = e.ExtraParams["prmValues"];
                var dataItem = JSON.Deserialize<Dictionary<string, string>>(gridJson);

                AuditoriaPMA audPma = AuditoriaPMA.NewEditableRoot();
                audPma.Id = System.Guid.NewGuid();
                audPma.ExpedienteAuditoriaId = Request["idAud"];
                stringMsg = "Nueva Auditoria  creada";
               
                            
                audPma.Periodo     = dataItem["Periodo"];
                audPma.FechaInicio = DateTime.Parse(dataItem["FechaInicio"]);
                audPma.FechaFin    = DateTime.Parse(dataItem["FechaFin"]);
                audPma.PlanAccion  = Valores.Codigo_CHAR_No;
                audPma.Save();
                //Actualizar id auditoria
                Obligaciones objObligacion = Obligaciones.GetEditableRoot(Guid.Parse(Request["idOli"]));
                objObligacion.AuditoriaId = audPma.Id.ToString();
                objObligacion.Tipo = Valores.Codigo_TipoObligacion_Pma;
                objObligacion.Save();
                btnSave.Disable();
                //Metodo de  ~/Auditoria/admin/Global/pgDetalle.aspx de wuc obligaciones:~/Auditoria/admin/Global/wucLickObligaciones.ascx
                X.Msg.Show(new MessageBoxConfig
                {
                    Buttons = MessageBox.Button.OK,
                    Icon    = MessageBox.Icon.INFO,
                    Title   = Titulos.TituloAviso,
                    Message = string.Format("{0}", stringMsg),
                    Handler = "if (window.parent!=null && typeof window.parent.App.CloseDetallaNuevaAuditoria === 'function') window.parent.App.CloseDetallaNuevaAuditoria();"

                   
                });
            }
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }

    }
}